#!/bin/bash
# RK3588启动脚本

echo "=========================================="
echo "  RK3588客户端启动"
echo "=========================================="

# 检查WiFi连接
echo "[网络] 检查WiFi连接..."
WIFI_IP=$(ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d'/' -f1)

if [ -n "$WIFI_IP" ]; then
    echo "[网络] ✓ WiFi已连接: $WIFI_IP"
    
    # 根据IP段判断服务器地址
    if echo "$WIFI_IP" | grep -q "^192\.168\.250\."; then
        # 局域网WiFi模式
        SERVER_IP="192.168.250.187"
        echo "[网络] 模式: WiFi局域网"
    elif echo "$WIFI_IP" | grep -q "^192\.168\.137\."; then
        # Windows热点模式
        SERVER_IP="192.168.137.1"
        echo "[网络] 模式: Windows热点"
    elif echo "$WIFI_IP" | grep -q "^192\.168\.43\."; then
        # 手机热点模式
        SERVER_IP="192.168.43.1"
        echo "[网络] 模式: 手机热点"
    else
        # 其他网段，使用网关
        NETWORK=$(echo "$WIFI_IP" | cut -d'.' -f1-3)
        SERVER_IP="${NETWORK}.1"
        echo "[网络] 模式: 其他WiFi"
    fi
    
    echo "[网络] 服务器IP: $SERVER_IP"
else
    # 如果WiFi未连接，尝试以太网
    echo "[网络] ⚠️  WiFi未连接，尝试以太网..."
    
    # 配置以太网IP
    if ! ip addr show eth0 | grep -q "192.168.10.100"; then
        sudo ip addr add 192.168.10.100/24 dev eth0 2>/dev/null
        echo "[网络] 以太网IP已配置: 192.168.10.100"
    else
        echo "[网络] 以太网IP已存在: 192.168.10.100"
    fi
    
    SERVER_IP="192.168.10.1"
    echo "[网络] 模式: 以太网"
    echo "[网络] 服务器IP: $SERVER_IP"
fi

# 测试服务器连通性
echo "[网络] 测试服务器器连接..."
if ping -c 1 -W 2 $SERVER_IP >/dev/null 2>&1; then
    echo "[网络] ✓ 服务器可达: $SERVER_IP"
else
    echo "[网络] ⚠️  无法ping通服务器: $SERVER_IP"
    echo "[网络] 但仍将尝试连接..."
fi

# 设置设备权限
echo "[权限] 设置设备权限..."
chmod 666 /dev/video* 2>/dev/null
chmod 666 /dev/ttyACM* 2>/dev/null
chmod 666 /dev/ttyUSB* 2>/dev/null
chmod 666 /dev/ttyAMA* 2>/dev/null

# 显示可用设备（简化版）
echo "[设备] USB串口:"
ls -l /dev/ttyUSB* /dev/ttyACM* 2>/dev/null | grep "^c" || echo "  无"
echo "[设备] Video设备:"
ls -l /dev/video* 2>/dev/null | grep "^c" | head -3 || echo "  无"

# 清理旧进程
pkill -f gst-launch 2>/dev/null
pkill -f rk3588_client 2>/dev/null
sleep 1

echo "=========================================="
echo "  启动中..."
echo "=========================================="

# 临时降低内核日志级别（屏蔽摄像头检测时的内核错误）
dmesg -n 1 2>/dev/null  # 只显示紧急消息

# 启动客户端（使用动态检测的服务器IP）
echo "[启动] 客户端参数: GZJY001 $SERVER_IP"
python3 rk3588_client.py GZJY001 $SERVER_IP

# 程序退出后恢复日志级别
dmesg -n 7 2>/dev/null

